আপনার ওয়েব পেজটি সকল ডিভাইসে সুন্দরভাবে দেখানোর জন্য রেস্পন্সিভ ওয়েব ডিজাইন ব্যবহার করা হয়।
রেস্পন্সিভ ওয়েব ডিজাইন শুধুমাত্র এইচটিএমএল এবং সিএসএস ব্যবহার করে করা যায়।
আপনি এইচটিএমএল এবং সিএসএস ব্যবহার করে ওয়েব পেজের কন্টেন্টগুলো বিভিন্ন ডিভাইসের স্ক্রিন অনুযায়ী সংকুচিত, প্রশস্ত, আকার পরিবর্তন ইত্যাদি করবেন তাকেই রেস্পন্সিভ ওয়েব ডিজাইন বলা হয়।
নিচে একটি উদাহরণ দেওয়া হলোঃ
ভিউপোর্ট হল ব্যবহারকারীর ডিভাইসে ওয়েব পেজের দৃশ্যমান অংশ।
ভিউপোর্ট ডিভাইসের সাথে সাথে পরিবর্তিত হয়, এবং মোবাইলের ভিউপোর্ট কম্পিউটারের ভিউপোর্টের চেয়ে ছোট হয়।
প্রথমদিকের ওয়েব পেজগুলো শুধুমাত্র কম্পিউারের জন্য ডিজাইন করা হয়েছিল।
অতঃপর ট্যাবলেট এবং মোবাইলে ইন্টারনেট ব্যবহার শুরুর পর থেকে ্কম্পিউটারের জন্য তৈরি ওয়েবপেজগুলো মোবাইল ভিউপোর্টের জন্য খুব বড় হয়ে যেত। এই সমস্যা দূর করতে ঐ সকল ডিভাইসের ব্রাউজারগুলো ওয়েবপেজকে ছোট করে দেখাতো।
ইহা একটি সমাধান ছিল, কিন্তু পূর্ণাংগ সমাধান ছিল না।
এইচটিএমএল(৫) ওয়েব ডিজাইনারদের জন্য < meta>
ট্যাগের মাধ্যমে ভিউপোর্ট সেট করার একটি পদ্ধতি চালু করেছে।
ওয়েব পেজে ভিউপোর্ট সেট করার জন্য নিম্নলিখিত < meta>
ভিউপোর্ট এলিমেন্টটি ব্যবহার করতে
< meta name="viewport" content="width=device-width, initial-scale=1.0">
একটি < meta>
ভিউপোর্ট এলিমেন্ট ওয়েব পেজকে কিভাবে প্রদর্শন করা হবে তা ডিফাইন করে।
width=device-width
এই অংশটি ভিন্ন ভিন্ন ডিভাইসের প্রস্থ অনুযায়ী ওয়েব পেজের প্রস্থ নির্ধারণ করে।
initial-scale=1.0
এই অংশটি ব্রাউজার ওয়েব পেজ লোড করার সময় পেজের প্রাথমিক জুম-লেভেল নির্ধারণ করে।
এখানে একটি ওয়েব পেজে ভিউপোর্ট মেটাট্যাগ সহ এবং ভিউপোর্ট মেটাট্যাগ ছাড়া দুইটি উদাহরণ দেওয়া হলঃ
পরামর্শঃ যদি আপনি ব্রাউজিং এর জন্য একটি ফোন বা ট্যাবলেট ব্যবহার করে থাকেন, তাহলে দুইটি লিঙ্কে ক্লিক করে পার্থক্য দেখতে পারবেন।
কন্টেন্টকে সকল ডিভাইসে সুন্দরভাবে দেখানোর জন্য আমরা আরো তিনটি পদ্ধতি মেনে চলতে পারিঃ
একটি ওয়েব পেজকে কলামে বিভক্ত করে লে-আউট তৈরি করা যায়, একেই গ্রিড-ভিউ বলা হয়।
ওয়েব পেজ ডিজাইনের সময় গ্রিড ভিউ ব্যবহার করা খুবই গুরুত্বপূর্ণ। এটি ওয়েব পেজের মধ্যে এলিমেন্টকে সঠিক জায়গায় স্থাপন করা সহজ করে তোলে।
রেস্পন্সিভ গ্রিড-ভিউতে অধিকাংশ সময় ১২ টি কলাম থাকে, ১২ টি কলাম মিলে এর মোট প্রস্থ হয় ১০০% এবং আপনি ব্রাউজারের আকার পরিবর্তন করার সাথে সাথে ইহা সংকুচিত ও প্রসারিত হবে।
প্রথমে সকল এইচটিএমএল এলিমেন্টের box-sizing
প্রোপার্টির ভ্যালু border-box
সেট করতে হবে। এর কারণ এলিমেন্টের প্যাডিং এবং বর্ডারসহ সম্পূর্ণ প্রস্থ ও উচ্চতা গণনা করা হবে।
আপনার সিএসএস ফাইলে নিম্নলিখিত কোড যুক্ত করুনঃ
* {
box-sizing: border-box;
}
box-sizing
প্রোপার্টি সম্পর্কে আরো জানতে আমাদের সিএসএস(৩) বক্স সাইজিং অধ্যায়টি পড়ুন।
kt_satt_skill_example_id=1818
ওয়েব পেজ দুই কলাম বিশিষ্ট হলে উপরের উদাহরণটিই যথেষ্ট।
আমরা ওয়েব পেজের উপর আরো বেশি নিয়ন্ত্রণ রাখার জন্য ১২ কলামের একটি রেস্পন্সিভ গ্রিড-ভিউ ব্যবহার করতে পারি।
প্রথমে আমরা একটি কলামের জন্য শতকরা বের করিঃ ১০০% / ১২ কলাম = ৮.৩৩%।
তারপর আমরা ১২ টি কলামের প্রতিটির জন্য একটি করে ক্লাস তৈরি করবো class="col-"
এবং প্রতিটি ক্লাসের জন্য কলামের প্রস্থ নির্দিষ্ট করে দিব।
kt_satt_skill_example_id=1819
সকল কলাম ব্রাউজারের বাম দিক থেকে শুরু হয়ে ডান দিকে যাবে এবং প্রতিটি কলামে ১৫পিক্সেল করে প্যাডিং ব্যবহার করিঃ
[class*="col-"] {
float: left;
padding: 15px;
border: 1px solid red;
}
প্রতিটি সারির জন্য একটি < div>
এলিমেন্ট ব্যবহার করতে হবে। প্রতিটি সারির ভিতরে কলাম সর্বোচ্চ ১২ পর্যন্ত যোগ করা যায়ঃ
...
...
আমরা একে আরো আকর্ষনীয় করার জন্য কিছু স্টাইল এবং কালার যোগ করতে পারিঃ
kt_satt_skill_example_id=1820
উপরের উদাহরণে আমরা দেখলাম যে ছোট অবস্থায় ব্রাউজার স্ক্রিনটি ভালো দেখায় না। ছোট স্ক্রিনে লিখাটিকে আরো ভালভাবে দেখানোর জন্য পরবর্তী অধ্যায়ে বিস্তারিত দেখানো হবে।
মিডিয়া কুয়েরি হলো সিএসএস(৩) এ সংযোজিত একটি পদ্ধতি যা ওয়েব পেজকে রেস্পন্সিভ করার জন্য ব্যবহার করা হয়।
সিএসএস মিডিয়া কুয়েরি ব্যবহারের জন্য @media
ব্যবহার করা হয় এবং একটি প্রস্থ নির্ধারণ করা হয় এবং ঐ প্রস্থের সকল ডিভাইসের জন্য স্টাইল ডিফাইন করা হয়।
kt_satt_skill_example_id=1821
এর আগের টিউটোরিয়ালে সারি এবং কলাম দিয়ে একটি রেস্পন্সিভ ওয়েব পেজ তৈরি করেছিলাম, কিন্তু তা ছোট ডিভাইসে ভালো দেখায়নি।
মিডিয়া কুয়েরির সাহায্যে আমরা তা ঠিক করবোঃ
৭৬৮পিক্সেলের নিচের ডিভাইসের জন্য মিডিয়া কুয়েরি ডিফাইন করিঃ
kt_satt_skill_example_id=1822
মোবাইল ফার্স্ট মানে হচ্ছে, কম্পিউটার বা অন্যান্য বড় ডিভাইসের পূর্বে মোবাইলের জন্য ডিজাইন করা।
এর অর্থ এই যে আমাদের সিএসএস-এ কিছু পরিবর্তন করতে হবে।
স্ক্রিন সাইজ ৭৬৮ পিক্সেলের চেয়ে ছোট হলে স্টাইল পরিবর্তন না করে,৭৬৮ পিক্সেলের চেয়ে বড় হলে পরিবর্তন করবো। এটা আমাদের ডিজাইনকে মোবাইল ফার্স্ট করবেঃ
kt_satt_skill_example_id=1823
আমরা ট্যাবলেট এবং মোবাইল ফোনের মাঝেও একটি ব্রেকপয়েন্ট যোগ করবো।
এই রকম করার জন্য আমরা আরেকটি মিডিয়া কুয়েরি (৬০০পিক্সেলে) এবং একসেট নতুন ক্লাস ব্যবহার করবো ৬০০ পিক্সেলের বড় (কিন্তু ৭৬৮ পিএক্সেলের ছোট) ডিভাইসের জন্যঃ
kt_satt_skill_example_id=1824
ইহা দেখতে অদ্ভুত হলেও আমরা একই রকম দুই সেট ক্লাস ব্যবহার করেছি,কিন্তু ইহা আমাদেরকে প্রতিটি ব্রেকপয়েন্টে কি ঘটবে তা নিয়ন্ত্রণ করার সুযোগ করে দিয়েছেঃ
...
...
...
কম্পিউটারের জন্যঃ
প্রথম ও তৃতীয় সেকশন উভয়ে ৩ টি কলামে ভাগ হবে, আর মাঝেরটি ৬টি কলামে ভাগ হবে।
ট্যাবলেটের জন্যঃ
প্রথম সেকশন ৩টি কলামে ভাগ হবে, দ্বিতীয়টি ৯টি কলামে ভাগ হবে এবং তৃতীয়টি 12 টি কলামে ভাগ হবে আর প্রথম ও দ্বিতীয় কলামটির নিচে প্রদর্শিত হবে।
ব্রাউজার ওরিয়েন্টেশনের ফলে পেজের লে-আউট পরিবর্তন করতে মিডিয়া কুয়েরি ব্যবহার করা যায়ঃ
আপনি একসেট সিএসএস প্রোপার্টি রাখতে পারেন যেগুলো "Landscape" ওরিয়েন্টেশন বা ব্রাউজার উইন্ডোর উচ্চতা যখন প্রস্থের চেয়ে কম হবে তখন কাজ করবেঃ
kt_satt_skill_example_id=1825
ইমেজের width
প্রোপার্টির ভ্যালু 100% ব্যবহার করে ইমেজকে রেস্পন্সিভ করা যায়ঃ
kt_satt_skill_example_id=1839
উপরের উদাহরণে ইমেজটিকে তার প্রস্থের চেয়ে বড় করা যায়। এই সমস্যা সমাধানের একটি ভালো উপায় max-width
প্রোপার্টি ব্যবহার করা।
ইমেজের max-width
প্রোপার্টির মান 100% দেওয়া হলে ইমেজটিকে ইচ্ছে করলে ছোট করতে পারবো, কিন্তু এর আকারের চেয়ে বড় করা যাবে নাঃ
kt_satt_skill_example_id=1838
ওয়েব পেজে ইমেজের ব্যবহার
kt_satt_skill_example_id=1837
ব্যাকগ্রাউন্ড ইমেজকে স্কেলিং এবং রিসাইজ করা যেতে পারে। এখানে আমরা তিনটি ভিন্ন মেথড দেখবোঃ
১. যদি background-size
প্রোপার্টির মান "contain"
হয়, ব্যাকগ্রাউন্ড ইমেজটি DIV এলিমেন্টের এরিয়ার মধ্যে সেট থাকবে এবং ইমেজটি তার প্রস্থ এবং দৈর্ঘ্যের আনুপাতিক হার ঠিক রাখবেঃ
kt_satt_skill_example_id=1836
২. যদি background-size
প্রোপার্টির মান 100% 100%
হয়, ব্যাকগ্রাউন্ড ইমেজ সমগ্র DIV এলিমেন্ট দখল করবেঃ
kt_satt_skill_example_id=1835
৩. যদি background-size
প্রোপার্টির মান "cover"
সেট করা হয়, ব্যাকগ্রাউন্ড ইমেজ এলিমেন্টের সম্পূর্ণ এরিয়া দখল করবে। "cover"
ব্যবহারের কারণে অানুপাতিক হার ঠিক থাকবে এবং ইমেজের কিছু অংশ বাদ পরতে পারেঃ
kt_satt_skill_example_id=1834
আমরা একটি বড় ইমেজকে কম্পিউটারে প্রদর্শনের জন্য ব্যবহার করি এবং ঐ বড় ইমেজকেই ছোট ডিভাইসের জন্য ছোট আকারে প্রদর্শন করি। যেহেতু আমরা ছোট ডিভাইসের জন্য ছোট আকারের ইমেজ প্রদর্শন করবো তাহলে একটি বড় ইমেজ ব্যবহার করে পেজ লোড হওয়ার সময় বৃদ্ধি করার কোন মানে হয় না।
আমরা মিডিয়া কুয়েরি ব্যবহার করে ছোট ডিভাইসের জন্য একটি ছোট আকারের ইমেজ ব্যবহার করতে পারি, এতে আমাদের পেজের পারফরমেন্স অনেক বৃদ্ধি পাবে।
নিচে একই ইমেজকে দুইটি ডিভাইসে প্রদর্শনের জন্য দুইটি আকারে দেখানো হলোঃ
kt_satt_skill_example_id=1833
আপনি মিডিয়া কুয়েরিতে min-width
এর পরিবর্তে min-device-width
ব্যবহার করতে পারেন, ইহা ব্রাউজারের প্রস্থের পরিবর্তে ডিভাইসের প্রস্থ পরিমাপ করবে। তখন আপনি ব্রাউজারের আকার পরিবর্তন করলেও ইমেজ পরিবর্তন হবে নাঃ
kt_satt_skill_example_id=1832
এইচটিএমএল(৫) এর < picture>
এলিমেন্ট ব্যবহার করে আপনি একাধিক ইমেজ যোগ করতে পারবেন।
< picture>
এলিমেন্ট < video>
এবং < audio>
এলিমেন্টের মতই কাজ করে। আপনি এক সাথে একাধিক উৎস সেট করতে পারেন এবং প্রথম যে উৎসের ফাইলটি ব্রাউজারের সাথে মানানসই হবে সেটিই ব্যবহার করা হবেঃ
kt_satt_skill_example_id=1831
srcset
এট্রিবিউটটি বাধ্যতামূলক এবং ইহাই ইমেজের উৎসগুলো ডিফাইন করে।
যেসব ব্রাউজারে < picture>
এলিমেন্ট সাপোর্ট করেনা, তাদের জন্য আপনাকে < img>
এলিমেন্টটি ডিফাইন করতে হবে।
ভিডিও এলিমেন্টের width
প্রোপার্টির মান 100% দিয়ে, ভিডিও প্লেয়ারটিকে রেস্পন্সিভ করা হয় এবং প্লেয়ারটি উপরে ও নিচে বাড়তে/কমতে থাকেঃ
kt_satt_skill_example_id=1828
ভিডিও এলিমেন্টের max-width
প্রোপার্টির মান 100% দেওয়া হলে ভিডিও প্লেয়ারটিকে ইচ্ছে করলে ছোট করতে পারবো, কিন্তু এর আকারের চেয়ে বড় করা যাবে নাঃ
kt_satt_skill_example_id=1829
আমরা আমাদের উদাহরণ পেজে একটি ভিডিও যোগ করতে চাই যা কিনা সম্পূর্ন জায়গা দখল করবেঃ
kt_satt_skill_example_id=1830
রেস্পন্সিভ ডিজাইন করার ফ্রেমওয়ার্কের ব্যবহার করা বুদ্ধিমানের কাজ। বর্তমানে অনেক ধরনের সিএসএস ফ্রেমওয়ার্ক রয়েছে।
সেগুলো বিনামূল্যে পাওয়া যায় এবং ব্যবহার করা সহজ।
রেস্পন্সিভ ডিজাইন তৈরি করার একটি সহজ উপায় হলো একটি রেস্পন্সিভ স্টাইল শীট ব্যবহার করা, যেমন W3.CSS
W3.CSS ব্যবহার অনেক সহজ। আপনি ইচ্ছা করলে আজকেই চেষ্টা করে দেখুনঃ
kt_satt_skill_example_id=1826
আরেকটি জনপ্রিয় ফ্রেমওয়ার্ক বুটস্ট্রাপ। ইহা এইচটিএমএল, সিএসএস এবং জেকুয়েরি ব্যবহার করে রেস্পন্সিভ ওয়েব পেজ তৈরি করার জন্য জনপ্রিয়ঃ
kt_satt_skill_example_id=1827
বুটস্ট্রাপ সম্পর্কে আরো জানতে, আমাদের বুটস্ট্রাপ টিউটোরিয়াল পড়ুন।
আরও দেখুন...